package com.aiti.lulian.service;

import com.aiti.base.core.base.service.BaseService;
import com.aiti.base.core.utils.message.Message;
import com.aiti.lulian.dto.CommunicateInfoDto;
import com.aiti.lulian.dto.CommunicateInfoSaveDto;
import com.aiti.lulian.entity.CommunicateInfo;
import com.aiti.lulian.vo.CommunicateInfoExportVo;
import com.aiti.lulian.vo.EmployeeOpportunityCountVo;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import java.util.List;
import java.util.Map;

public interface ICommunicateInfoService extends BaseService<CommunicateInfo> {

    /**
     * 立即沟通
     *
     * @param communicateInfo
     */
    Message commitCommunicateInfo(CommunicateInfo communicateInfo);

    Map<String, Object> queryBoAllListBackend(Integer pageNum, Integer pageSize, CommunicateInfo communicateInfo);

    /***
     * 查询员工的商机数量
     * @return
     */
    List<EmployeeOpportunityCountVo> queryCommunicateCountList(Page<EmployeeOpportunityCountVo> page, CommunicateInfoDto dto, String userId);

    Map<String,Long> queryCommunicateCount(String userId,CommunicateInfoDto dto);

    Message detailInfo(String baseId);

    Message listPage(Page page, CommunicateInfoDto dto);

    Message confirm(CommunicateInfoSaveDto communicateInfoDto);

    Message saveCommunicateInfo(CommunicateInfoSaveDto communicateInfoDto);

    Message deptAdmin(String userId);

    Message dispatch(CommunicateInfoSaveDto communicateInfoDto);

    Message updateCommunicateInfo(CommunicateInfoSaveDto communicateInfoDto);

    Message importExcel(CommunicateInfoSaveDto communicateInfoDto);

    Message deleteCommunicateInfo(String baseId);

    List<CommunicateInfoExportVo> communicateInfoList(CommunicateInfoDto dto);


    Message saveCommunicateInfoNonCheck(CommunicateInfoSaveDto communicateInfoDto);
}